|
Lokalizacja w menu |
---|
Część → Rozdziel → Fragmentacja funkcją logiczną |
Środowisko pracy |
Część |
Domyślny skrót |
brak |
Wprowadzono w wersji |
0.17 |
Zobacz także |
Krojenie, Logiczny XOR, Połącz obiekty, Operacje logiczne na bryłach |
Narzędzie Fragmentacja funkcją logiczną oblicza wszystkie fragmenty, które mogą wynikać z zastosowania operacji logicznych między kształtami wejściowymi. Na przykład dla dwóch przenikających się kul generowane są trzy nienakładające się, ale stykające się bryły.
Na powyższym obrazku poszczególne elementy zostały ręcznie rozsunięte, aby uwidocznić cięcie.
Kształt wyjściowy jest zawsze złożony. Zawartość złożenia zależy od typu kształtu wejściowego i trybu działania. Oznacza to, że nie masz natychmiastowego dostępu do poszczególnych elementów wyniku - elementy pozostają zgrupowane. Poszczególne elementy można wyodrębnić poprzez rozbicie złożenia funkcją (Rozbij kształt).
Narzędzie ma trzy tryby pracy: "Standardowy", "Podziel" i "BryłaZłożona".
Standard i Podziel różnią się działaniem narzędzia na linach, powłokach i bryłach. W przypadku opcji "Podziel " są one rozdzielane. W przypadku opcji "Standard" są one utrzymywane razem (otrzymują dodatkowe segmenty).
Struktura łączenia w trybach "Standard" i "Podziel" jest zgodna ze strukturą łączenia krojonego kształtu. Oznacza to, że jeśli wprowadzisz dwa złożenia, każde zawierające kulę, jak w powyższym przykładzie, wynik będzie również zawierał dwa złożenia, każde zawierające kawałki pierwotnie zawartej kuli. Oznacza to, że wspólny element zostanie powtórzony dwukrotnie w wyniku. Tylko jeśli kule wejściowe nie są częścią złożenia, wynik będzie zawierał wspólny element tylko raz.
W trybie "BryłaZłożona" bryły są łączone w bryłę złożoną (bryła złożona to zestaw brył połączonych ścianami. Są one powiązane z bryłami tak, jak linie są powiązane z krawędziami, a powłoki są powiązane ze ścianami. Nazwa pochodzi więc od wyrażenia "bryła złożona"). Wynikiem jest nie zagnieżdżony zbiór brył złożonych
Fragmenty logiczne
Narzędzie Boolean Fragments w "trybie standardowym" to Ogólny Operator Scalenia (General Fuse Operator GFA) OpenCascade. Akceptuje on kombinację prawdopodobnie wszystkich typów kształtów, a logika wyjścia jest dość zawiła. Zobacz Podręcznik użytkownika OpenCascade: Operacje logiczne jeśli ten temat Cię zainteresował.
W trybach "Podziel" i "BryłaZłożona" przeprowadzane jest przez FreeCAD dodatkowe przetwarzanie końcowe.
Narzędzie Fragmentacja funkcją logiczną może być używane w makrodefinicjach i z konsoli Python za pomocą następującej funkcji:
BOPTools.SplitFeatures.makeBooleanFragments(name)
Funkcja Fragmentacja funkcją logiczną może być również stosowana do zwykłych kształtów, bez konieczności posiadania obiektu dokumentu:
import BOPTools.SplitAPI
BOPTools.SplitAPI.booleanFragments(list_of_shapes, mode, tolerance = 0.0)
# OR, for Standard mode:
list_of_shapes = [App.ActiveDocument.Sphere.Shape, App.ActiveDocument.Sphere001.Shape]
pieces, map = list_of_shapes[0].generalFuse(list_of_shapes[1:], tolerance)
# pieces receives a compound of shapes; map receives a list of lists of shapes, defining list_of_shapes <--> pieces correspondence
Może to być przydatne do tworzenia niestandardowych funkcji skryptowych Python.
Przykład:
import BOPTools.SplitFeatures
j = BOPTools.SplitFeatures.makeBooleanFragments(name= 'BooleanFragments')
j.Objects = FreeCADGui.Selection.getSelection()
Samo narzędzie jest zaimplementowane w środowisku Python, patrz /Mod/Part/BOPTools/SplitFeatures.py w miejscu instalacji FreeCAD.
Narzędzie zostało wprowadzone w wersji FreeCAD v0.17.8053. FreeCAD musi być skompilowany z OCC 6.9.0 lub nowszym. W przeciwnym razie narzędzie jest niedostępne.